import {Component} from "vue"

// *************************************************************************************************** Components ******
const StUiVue3NavieComponents: Record<string, Component> = {} // 当前组件库中的所有组件

// -------------------------------------------------------------------------------- 具有收缩效果和气泡提示弹框的按钮组件 ------
import _StnCollapsePopBtn from './components/StnCollapsePopBtn'
import {StnCollapsePopBtnRegister as _StnCollapsePopBtnRegister} from './components/StnCollapsePopBtn'

StUiVue3NavieComponents.StnCollapsePopBtn = _StnCollapsePopBtn
export const StnCollapsePopBtn = _StnCollapsePopBtn
export const StnCollapsePopBtnRegister = _StnCollapsePopBtnRegister
// -------------------------------------------------------------------------------- 具有收缩效果和气泡提示弹框的按钮组件 ------

// ----------------------------------------------------------------------------------------------------- 对话框组件 ------
import _StnDialog from './components/StnDialog'
import {StnDialogRegister as _StnDialogRegister} from './components/StnDialog'

StUiVue3NavieComponents.StnDialog = _StnDialog
export const StnDialog = _StnDialog
export const StnDialogRegister = _StnDialogRegister
// ----------------------------------------------------------------------------------------------------- 对话框组件 ------

// ---------------------------------------------------------------------------------------- 具有确认气泡弹框的按钮组件 ------
import _StnPopConfirmBtn from './components/StnPopConfirmBtn'
import {StnPopConfirmBtnRegister as _StnPopConfirmBtnRegister} from './components/StnPopConfirmBtn'

StUiVue3NavieComponents.StnConfirmPopBtn = _StnPopConfirmBtn
export const StnConfirmPopBtn = _StnPopConfirmBtn
export const StnConfirmPopBtnRegister = _StnPopConfirmBtnRegister
// ---------------------------------------------------------------------------------------- 具有确认气泡弹框的按钮组件 ------

// --------------------------------------------------------------------------------------------------- 折叠搜索组件 ------
import _StnCollapseSearch from './components/StnCollapseSearch'

StUiVue3NavieComponents.StnCollapseSearch = _StnCollapseSearch
export const StnCollapseSearch = _StnCollapseSearch
export const StnCollapseSearchRegister = _StnCollapseSearch.register
// --------------------------------------------------------------------------------------------------- 折叠搜索组件 ------

// ------------------------------------------------------------------------------------------------------- 表格组件 ------
import _StnTable from './components/StnTable'
import {
  StnTableRegister as _StnTableRegister,
  StnDataTableColumn as _StnDataTableColumn,
  StnDataTableColumns as _StnDataTableColumns,
  genTableCol as _genTableCol,
  genLeftFixedTableCol as _genLeftFixedTableCol,
  genRightFixedTableCol as _genRightFixedTableCol,
} from './components/StnTable'
StUiVue3NavieComponents.StnTable = _StnTable
export const StnTable = _StnTable
export const StnTableRegister = _StnTableRegister
export type StnDataTableColumn = _StnDataTableColumn
export type StnDataTableColumns = _StnDataTableColumns
export const genTableCol = _genTableCol
export const genLeftFixedTableCol = _genLeftFixedTableCol
export const genRightFixedTableCol = _genRightFixedTableCol

import _StnTableColSetting from './components/StnTableColSetting'
import {StnTableColSettingRegister as _StnTableColSettingRegister} from './components/StnTableColSetting'
StUiVue3NavieComponents.StnTableColSetting = _StnTableColSetting
export const StnTableColSetting = _StnTableColSetting
export const StnTableColSettingRegister = _StnTableColSettingRegister

import _StnTableEditorDelBtnGroup from './components/StnTableEditorDelBtnGroup'
import {StnTableEditorDelBtnGroupRegister as _StnTableEditorDelBtnGroupRegister} from './components/StnTableEditorDelBtnGroup'
StUiVue3NavieComponents.StnTableEditorDelBtnGroup = _StnTableEditorDelBtnGroup
export const StnTableEditorDelBtnGroup = _StnTableEditorDelBtnGroup
export const StnTableEditorDelBtnGroupRegister = _StnTableEditorDelBtnGroupRegister

import _StnTableOperations from './components/StnTableOperations'
import {StnTableOperationsRegister as _StnTableOperationsRegister} from './components/StnTableOperations'
StUiVue3NavieComponents.StnTableOperations = _StnTableOperations
export const StnTableOperations = _StnTableOperations
export const StnTableOperationsRegister = _StnTableOperationsRegister
// ------------------------------------------------------------------------------------------------------- 表格组件 ------


// --------------------------------------------------------------------------------------------------- 列表输入组件 ------
import _StnListInput from './components/StnListInput'
import {
  StnListInputRegister as _StnListInputRegister,
  StnListInputProps as _StnListInputProps,
} from './components/StnListInput'

StUiVue3NavieComponents.StnListInput = _StnListInput
export const StnListInput = _StnListInput
export const StnListInputRegister = _StnListInputRegister
export type StnListInputProps = _StnListInputProps
// --------------------------------------------------------------------------------------------------- 列表输入组件 ------

// ------------------------------------------------------------------------------------------------------- 加载组件 ------
import _StnLoading from './components/StnLoading'
import {StnLoadingRegister as _StnLoadingRegister} from './components/StnLoading'

StUiVue3NavieComponents.StnLoading = _StnLoading
export const StnLoading = _StnLoading
export const StnLoadingRegister = _StnLoadingRegister
// ------------------------------------------------------------------------------------------------------- 加载组件 ------

// ------------------------------------------------------------------------------------------ Iconify 图标选择器组件 ------
import _StnIconifyIconSelector from './components/StnIconifyIconSelector'
import {StnIconifyIconSelectorRegister as _StnIconifyIconSelectorRegister} from './components/StnIconifyIconSelector'

StUiVue3NavieComponents.StnIconifyIconSelector = _StnIconifyIconSelector
export const StnIconifyIconSelector = _StnIconifyIconSelector
export const StnIconifyIconSelectorRegister = _StnIconifyIconSelectorRegister
// ------------------------------------------------------------------------------------------ Iconify 图标选择器组件 ------

// ----------------------------------------------------------------------------------------------------- 滚动条组件 ------
import _StnScrollbar from './components/StnScrollbar'
import {StnScrollbarRegister as _StnScrollbarRegister} from './components/StnScrollbar'

StUiVue3NavieComponents.StnScrollbar = _StnScrollbar
export const StnScrollbar = _StnScrollbar
export const StnScrollbarRegister = _StnScrollbarRegister
// ----------------------------------------------------------------------------------------------------- 滚动条组件 ------

// --------------------------------------------------------------------------------------------- 响应式列布局表单组件 ------
import _StnResponsiveColsForm from './components/StnResponsiveColsForm'
import {StnResponsiveColsFormRegister as _StnResponsiveColsFormRegister} from './components/StnResponsiveColsForm'

StUiVue3NavieComponents.StnResponsiveColsForm = _StnResponsiveColsForm
export const StnResponsiveColsForm = _StnResponsiveColsForm
export const StnResponsiveColsFormRegister = _StnResponsiveColsFormRegister
// --------------------------------------------------------------------------------------------- 响应式列布局表单组件 ------

// ------------------------------------------------------------------------------------------- 响应式 Sider 布局组件 ------
import _StnResponsiveSider from './components/StnResponsiveSider'
import {
  StnResponsiveSiderRegister as _StnResponsiveSiderRegister,
  StnResponsiveSiderProps as _StnResponsiveSiderProps,
} from './components/StnResponsiveSider'

StUiVue3NavieComponents.StnResponsiveSider = _StnResponsiveSider
export const StnResponsiveSider = _StnResponsiveSider
export const StnResponsiveSiderRegister = _StnResponsiveSiderRegister
export type StnResponsiveSiderProps = _StnResponsiveSiderProps
// ------------------------------------------------------------------------------------------- 响应式 Sider 布局组件 ------

// -------------------------------------------------------------------------------------------------- 响应式布局组件 ------
import _StnResponsiveLayout from './components/StnResponsiveLayout'
import {StnResponsiveLayoutRegister as _StnResponsiveLayoutRegister} from './components/StnResponsiveLayout'

StUiVue3NavieComponents.StnResponsiveLayout = _StnResponsiveLayout
export const StnResponsiveLayout = _StnResponsiveLayout
export const StnResponsiveLayoutRegister = _StnResponsiveLayoutRegister
// -------------------------------------------------------------------------------------------------- 响应式布局组件 ------

// ------------------------------------------------------------------------------------------------------- 提示组件 ------
import _StnTip from './components/StnTip'
import {
  StnTipRegister as _StnTipRegister,
  TipMessageTypeConst as _TipMessageTypeConst,
  TipMessageType as _TipMessageType,
  TipNotificationTypeConst as _TipNotificationTypeConst,
  TipNotificationType as _TipNotificationType,
  useTipStore as _useTipStore,
} from './components/StnTip'

StUiVue3NavieComponents.StnTip = _StnTip
export const StnTip = _StnTip
export const StnTipRegister = _StnTipRegister
export const TipMessageTypeConst = _TipMessageTypeConst
export type TipMessageType = _TipMessageType
export const TipNotificationTypeConst = _TipNotificationTypeConst
export type TipNotificationType = _TipNotificationType
export const useTipStore = _useTipStore

import _StnTipProvider from './components/StnTipProvider'
import {StnTipProviderRegister as _StnTipProviderRegister} from './components/StnTipProvider'

StUiVue3NavieComponents.StnTipProvider = _StnTipProvider
export const StnTipProvider = _StnTipProvider
export const StnTipProviderRegister = _StnTipProviderRegister
// ------------------------------------------------------------------------------------------------------- 提示组件 ------

// ------------------------------------------------------------------------------------------------------- 开关组件 ------
import _StnSwitch from './components/StnSwitch'
import {
  StnSwitchRegister as _StnSwitchRegister,
  StnSwitchProps as _StnSwitchProps,
} from './components/StnSwitch'

StUiVue3NavieComponents.StnSwitch = _StnSwitch
export const StnSwitch = _StnSwitch
export const StnSwitchRegister = _StnSwitchRegister
export type StnSwitchProps = _StnSwitchProps
// ------------------------------------------------------------------------------------------------------- 开关组件 ------

// -------------------------------------------------------------------------------------------------- 单选按钮组组件 ------
import _StnRadioBtnGroup from './components/StnRadioBtnGroup'
import {
  StnRadioBtnGroupRegister as _StnRadioBtnGroupRegister,
  StnRadioBtnGroupProps as _StnRadioBtnGroupProps,
} from './components/StnRadioBtnGroup'

StUiVue3NavieComponents.StnRadioBtnGroup = _StnRadioBtnGroup
export const StnRadioBtnGroup = _StnRadioBtnGroup
export const StnRadioBtnGroupRegister = _StnRadioBtnGroupRegister
export type StnRadioBtnGroupProps = _StnRadioBtnGroupProps
// -------------------------------------------------------------------------------------------------- 单选按钮组组件 ------

// ----------------------------------------------------------------------------------------- 输入组件 Provider 组件 ------
import _StnIptProvider from './components/StnIptProvider'
import {StnIptProviderRegister as _StnInputProviderRegister} from './components/StnIptProvider'

StUiVue3NavieComponents.StnIptProvider = _StnIptProvider
export const StnIptProvider = _StnIptProvider
export const StnIptProviderRegister = _StnInputProviderRegister
// ----------------------------------------------------------------------------------------- 输入组件 Provider 组件 ------

// ------------------------------------------------------------------------------------------------------- 输入组件 ------
import _StnIpt from './components/StnIpt'
import {
  StnIptRegister as _StnIptRegister,
  StnIptPropsFieldDefault as _StnIptPropsFieldDefault,
  IptTypeConst as _IptTypeConst,
  IptTypeMapConst as _IptTypeMapConst,
  IptType as _IptType,
  IptPropsType as _IptPropsType,
  StnIptPropsFieldType as _StnIptPropsFieldType,
  StnIptPredefinePropsFieldType as _StnIptPredefinePropsFieldType,
  FormItemPropsType as _FormItemPropsType,
} from './components/StnIpt'


StUiVue3NavieComponents.StnIpt = _StnIpt
export const StnIpt = _StnIpt
export const StnIptRegister = _StnIptRegister
export {IptTypeEnum} from './components/StnIpt'
export const StnIptPropsFieldDefault = _StnIptPropsFieldDefault
export const IptTypeConst = _IptTypeConst
export const IptTypeMapConst = _IptTypeMapConst
export type IptType = _IptType
export type IptPropsType = _IptPropsType
export type StnIptPropsFieldType = _StnIptPropsFieldType
export type StnIptPredefinePropsFieldType = _StnIptPredefinePropsFieldType
export type FormItemPropsType = _FormItemPropsType
// ------------------------------------------------------------------------------------------------------- 输入组件 ------

// ===================================================================================== 全局注册组件库中所有组件的插件 ======
import {genCompLibGlobalRegisterPlugin as _genCompLibGlobalRegisterPlugin} from "st-common-ui-vue3"

export const StUiVue3Navie = _genCompLibGlobalRegisterPlugin(StUiVue3NavieComponents)
// ===================================================================================== 全局注册组件库中所有组件的插件 ======
// *************************************************************************************************** Components ******


// ******************************************************************************************************* Plugin ******
// ----------------------------------------------------------------------------------------------------- Resolver ------
import {StUIVue3NavieResolver as _StUIVue3NavieResolver} from "./plugins/resolver/index.ts"
import {ComponentResolver} from "unplugin-vue-components"

export const StUIVue3NavieResolver: () => ComponentResolver = _StUIVue3NavieResolver
// ----------------------------------------------------------------------------------------------------- Resolver ------
// ******************************************************************************************************* Plugin ******

